"""
Config：需要设置配置信息：目前设置的有-->

1.连接数据库，以及设置数据库信息，包括mysql里需要设置查找方式和redis
2.设置session_key 信息 以及  session信息里需要设置数据库类型，可以设置
session存在的时间。
这里不是Config里的
1.设置flask实例对象
2.需要设置数据库操作的对象
3.设置表单对象
4.设置session对象
5.创建托管对象
6.添加到命令行对象


"""
import redis
from flask import Flask, session
from flask_script import Manager
from flask_migrate import Migrate ,MigrateCommand
from flask_sqlalchemy import SQLAlchemy
from flask_wtf.csrf import CSRFProtect
from flask_session import Session


class Config(object):
    DEBUG = True
    #导入连接mysql数据库
    SQLALCHEMY_DATABASE_URI = 'mysql://root:mysql@127.0.0.1:3306/information'
    # 让数据库连接更快
    SQLALCHEMY_TRACK_MODIFICATIONS = False

    REDIS_HOST = "127.0.0.1"
    REDIS_PORT = 6379

    # 这里是使用redis来储存session，所以算是session里的命令
    #     连接redis数据库
    SESSION_TYPE = 'redis'
    SESSION_USE_SIGNER = True
    SESSION_REDIS = redis.StrictRedis(host=REDIS_HOST,port=REDIS_PORT)
    # 设置秘钥
    SECRET_KEY ='mkPR3YQfVi5OHU1OiIBWG2D7VkLcDvmGJWKco3hnpn4='
    # 设置有效时间
    PERMANENT_SESSION_LIFETIME = 86400





app = Flask(__name__)
app.config.from_object(Config)
Session(app)
manager = Manager(app)
CSRFProtect(app)
db = SQLAlchemy(app)
Migrate(db, app)
manager.add_command('db', MigrateCommand)


@app.route('/')
def index():
    session['name'] = 'itheima'
    return 'OK'


if __name__ == '__main__':
    manager.run()